package zj.xinxin.api.moudle.security.api;

import com.baomidou.mybatisplus.extension.service.IService;
import zj.xinxin.api.moudle.security.dto.RoleDto;
import zj.xinxin.api.moudle.security.entity.RoleEntity;
import zj.xinxin.api.moudle.security.vo.RoleCreateVo;
import zj.xinxin.api.moudle.security.vo.RoleInfoSearchVo;
import zj.xinxin.api.moudle.security.vo.RoleUpdateVo;

import java.util.List;

/**
 * @author junzhou
 * @date 2022/3/23 17:39
 * @since 1.8
 */
public interface RoleService extends IService<RoleEntity> {

    /**
     * 根据当前用户权限 获取角色列表
     * @return roleId 所能查看的所有角色列表
     */
    List<RoleDto> getRoleList();

    /**
     * 搜索角色信息
     * @param searchVo 搜索的条件
     * @return 查询到的搜索结果
     */
    List<RoleDto> searchByCondition(RoleInfoSearchVo searchVo);

    /**
     * 添加角色信息
     * @param roleInfo 角色信息
     * @return 是否创建成功
     */
    Boolean addRole(RoleCreateVo roleInfo);

    /**
     * 更新用户信息
     * @param roleInfo 待更新的用户信息
     * @return 是否更新成功
     */
    Boolean updateRole(RoleUpdateVo roleInfo);

    /**
     * 获取普通用户的角色信息
     * @return 角色信息
     */
    RoleDto getConsumerRole();
}
